package com.mentaleye.dal.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class AssessmentExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public AssessmentExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andTypeIsNull() {
            addCriterion("type is null");
            return (Criteria) this;
        }

        public Criteria andTypeIsNotNull() {
            addCriterion("type is not null");
            return (Criteria) this;
        }

        public Criteria andTypeEqualTo(Integer value) {
            addCriterion("type =", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotEqualTo(Integer value) {
            addCriterion("type <>", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThan(Integer value) {
            addCriterion("type >", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("type >=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThan(Integer value) {
            addCriterion("type <", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThanOrEqualTo(Integer value) {
            addCriterion("type <=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeIn(List<Integer> values) {
            addCriterion("type in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotIn(List<Integer> values) {
            addCriterion("type not in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeBetween(Integer value1, Integer value2) {
            addCriterion("type between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("type not between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andAutoFormIdIsNull() {
            addCriterion("auto_form_id is null");
            return (Criteria) this;
        }

        public Criteria andAutoFormIdIsNotNull() {
            addCriterion("auto_form_id is not null");
            return (Criteria) this;
        }

        public Criteria andAutoFormIdEqualTo(Integer value) {
            addCriterion("auto_form_id =", value, "autoFormId");
            return (Criteria) this;
        }

        public Criteria andAutoFormIdNotEqualTo(Integer value) {
            addCriterion("auto_form_id <>", value, "autoFormId");
            return (Criteria) this;
        }

        public Criteria andAutoFormIdGreaterThan(Integer value) {
            addCriterion("auto_form_id >", value, "autoFormId");
            return (Criteria) this;
        }

        public Criteria andAutoFormIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("auto_form_id >=", value, "autoFormId");
            return (Criteria) this;
        }

        public Criteria andAutoFormIdLessThan(Integer value) {
            addCriterion("auto_form_id <", value, "autoFormId");
            return (Criteria) this;
        }

        public Criteria andAutoFormIdLessThanOrEqualTo(Integer value) {
            addCriterion("auto_form_id <=", value, "autoFormId");
            return (Criteria) this;
        }

        public Criteria andAutoFormIdIn(List<Integer> values) {
            addCriterion("auto_form_id in", values, "autoFormId");
            return (Criteria) this;
        }

        public Criteria andAutoFormIdNotIn(List<Integer> values) {
            addCriterion("auto_form_id not in", values, "autoFormId");
            return (Criteria) this;
        }

        public Criteria andAutoFormIdBetween(Integer value1, Integer value2) {
            addCriterion("auto_form_id between", value1, value2, "autoFormId");
            return (Criteria) this;
        }

        public Criteria andAutoFormIdNotBetween(Integer value1, Integer value2) {
            addCriterion("auto_form_id not between", value1, value2, "autoFormId");
            return (Criteria) this;
        }

        public Criteria andAutoFormVersionIsNull() {
            addCriterion("auto_form_version is null");
            return (Criteria) this;
        }

        public Criteria andAutoFormVersionIsNotNull() {
            addCriterion("auto_form_version is not null");
            return (Criteria) this;
        }

        public Criteria andAutoFormVersionEqualTo(Integer value) {
            addCriterion("auto_form_version =", value, "autoFormVersion");
            return (Criteria) this;
        }

        public Criteria andAutoFormVersionNotEqualTo(Integer value) {
            addCriterion("auto_form_version <>", value, "autoFormVersion");
            return (Criteria) this;
        }

        public Criteria andAutoFormVersionGreaterThan(Integer value) {
            addCriterion("auto_form_version >", value, "autoFormVersion");
            return (Criteria) this;
        }

        public Criteria andAutoFormVersionGreaterThanOrEqualTo(Integer value) {
            addCriterion("auto_form_version >=", value, "autoFormVersion");
            return (Criteria) this;
        }

        public Criteria andAutoFormVersionLessThan(Integer value) {
            addCriterion("auto_form_version <", value, "autoFormVersion");
            return (Criteria) this;
        }

        public Criteria andAutoFormVersionLessThanOrEqualTo(Integer value) {
            addCriterion("auto_form_version <=", value, "autoFormVersion");
            return (Criteria) this;
        }

        public Criteria andAutoFormVersionIn(List<Integer> values) {
            addCriterion("auto_form_version in", values, "autoFormVersion");
            return (Criteria) this;
        }

        public Criteria andAutoFormVersionNotIn(List<Integer> values) {
            addCriterion("auto_form_version not in", values, "autoFormVersion");
            return (Criteria) this;
        }

        public Criteria andAutoFormVersionBetween(Integer value1, Integer value2) {
            addCriterion("auto_form_version between", value1, value2, "autoFormVersion");
            return (Criteria) this;
        }

        public Criteria andAutoFormVersionNotBetween(Integer value1, Integer value2) {
            addCriterion("auto_form_version not between", value1, value2, "autoFormVersion");
            return (Criteria) this;
        }

        public Criteria andNameIsNull() {
            addCriterion("name is null");
            return (Criteria) this;
        }

        public Criteria andNameIsNotNull() {
            addCriterion("name is not null");
            return (Criteria) this;
        }

        public Criteria andNameEqualTo(String value) {
            addCriterion("name =", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotEqualTo(String value) {
            addCriterion("name <>", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThan(String value) {
            addCriterion("name >", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThanOrEqualTo(String value) {
            addCriterion("name >=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThan(String value) {
            addCriterion("name <", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThanOrEqualTo(String value) {
            addCriterion("name <=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLike(String value) {
            addCriterion("name like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotLike(String value) {
            addCriterion("name not like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameIn(List<String> values) {
            addCriterion("name in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotIn(List<String> values) {
            addCriterion("name not in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameBetween(String value1, String value2) {
            addCriterion("name between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotBetween(String value1, String value2) {
            addCriterion("name not between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andFormTypeIsNull() {
            addCriterion("form_type is null");
            return (Criteria) this;
        }

        public Criteria andFormTypeIsNotNull() {
            addCriterion("form_type is not null");
            return (Criteria) this;
        }

        public Criteria andFormTypeEqualTo(Integer value) {
            addCriterion("form_type =", value, "formType");
            return (Criteria) this;
        }

        public Criteria andFormTypeNotEqualTo(Integer value) {
            addCriterion("form_type <>", value, "formType");
            return (Criteria) this;
        }

        public Criteria andFormTypeGreaterThan(Integer value) {
            addCriterion("form_type >", value, "formType");
            return (Criteria) this;
        }

        public Criteria andFormTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("form_type >=", value, "formType");
            return (Criteria) this;
        }

        public Criteria andFormTypeLessThan(Integer value) {
            addCriterion("form_type <", value, "formType");
            return (Criteria) this;
        }

        public Criteria andFormTypeLessThanOrEqualTo(Integer value) {
            addCriterion("form_type <=", value, "formType");
            return (Criteria) this;
        }

        public Criteria andFormTypeIn(List<Integer> values) {
            addCriterion("form_type in", values, "formType");
            return (Criteria) this;
        }

        public Criteria andFormTypeNotIn(List<Integer> values) {
            addCriterion("form_type not in", values, "formType");
            return (Criteria) this;
        }

        public Criteria andFormTypeBetween(Integer value1, Integer value2) {
            addCriterion("form_type between", value1, value2, "formType");
            return (Criteria) this;
        }

        public Criteria andFormTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("form_type not between", value1, value2, "formType");
            return (Criteria) this;
        }

        public Criteria andFormIsNull() {
            addCriterion("form is null");
            return (Criteria) this;
        }

        public Criteria andFormIsNotNull() {
            addCriterion("form is not null");
            return (Criteria) this;
        }

        public Criteria andFormEqualTo(Integer value) {
            addCriterion("form =", value, "form");
            return (Criteria) this;
        }

        public Criteria andFormNotEqualTo(Integer value) {
            addCriterion("form <>", value, "form");
            return (Criteria) this;
        }

        public Criteria andFormGreaterThan(Integer value) {
            addCriterion("form >", value, "form");
            return (Criteria) this;
        }

        public Criteria andFormGreaterThanOrEqualTo(Integer value) {
            addCriterion("form >=", value, "form");
            return (Criteria) this;
        }

        public Criteria andFormLessThan(Integer value) {
            addCriterion("form <", value, "form");
            return (Criteria) this;
        }

        public Criteria andFormLessThanOrEqualTo(Integer value) {
            addCriterion("form <=", value, "form");
            return (Criteria) this;
        }

        public Criteria andFormIn(List<Integer> values) {
            addCriterion("form in", values, "form");
            return (Criteria) this;
        }

        public Criteria andFormNotIn(List<Integer> values) {
            addCriterion("form not in", values, "form");
            return (Criteria) this;
        }

        public Criteria andFormBetween(Integer value1, Integer value2) {
            addCriterion("form between", value1, value2, "form");
            return (Criteria) this;
        }

        public Criteria andFormNotBetween(Integer value1, Integer value2) {
            addCriterion("form not between", value1, value2, "form");
            return (Criteria) this;
        }

        public Criteria andToTypeIsNull() {
            addCriterion("to_type is null");
            return (Criteria) this;
        }

        public Criteria andToTypeIsNotNull() {
            addCriterion("to_type is not null");
            return (Criteria) this;
        }

        public Criteria andToTypeEqualTo(Integer value) {
            addCriterion("to_type =", value, "toType");
            return (Criteria) this;
        }

        public Criteria andToTypeNotEqualTo(Integer value) {
            addCriterion("to_type <>", value, "toType");
            return (Criteria) this;
        }

        public Criteria andToTypeGreaterThan(Integer value) {
            addCriterion("to_type >", value, "toType");
            return (Criteria) this;
        }

        public Criteria andToTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("to_type >=", value, "toType");
            return (Criteria) this;
        }

        public Criteria andToTypeLessThan(Integer value) {
            addCriterion("to_type <", value, "toType");
            return (Criteria) this;
        }

        public Criteria andToTypeLessThanOrEqualTo(Integer value) {
            addCriterion("to_type <=", value, "toType");
            return (Criteria) this;
        }

        public Criteria andToTypeIn(List<Integer> values) {
            addCriterion("to_type in", values, "toType");
            return (Criteria) this;
        }

        public Criteria andToTypeNotIn(List<Integer> values) {
            addCriterion("to_type not in", values, "toType");
            return (Criteria) this;
        }

        public Criteria andToTypeBetween(Integer value1, Integer value2) {
            addCriterion("to_type between", value1, value2, "toType");
            return (Criteria) this;
        }

        public Criteria andToTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("to_type not between", value1, value2, "toType");
            return (Criteria) this;
        }

        public Criteria andToIsNull() {
            addCriterion("to is null");
            return (Criteria) this;
        }

        public Criteria andToIsNotNull() {
            addCriterion("to is not null");
            return (Criteria) this;
        }

        public Criteria andToEqualTo(Integer value) {
            addCriterion("to =", value, "to");
            return (Criteria) this;
        }

        public Criteria andToNotEqualTo(Integer value) {
            addCriterion("to <>", value, "to");
            return (Criteria) this;
        }

        public Criteria andToGreaterThan(Integer value) {
            addCriterion("to >", value, "to");
            return (Criteria) this;
        }

        public Criteria andToGreaterThanOrEqualTo(Integer value) {
            addCriterion("to >=", value, "to");
            return (Criteria) this;
        }

        public Criteria andToLessThan(Integer value) {
            addCriterion("to <", value, "to");
            return (Criteria) this;
        }

        public Criteria andToLessThanOrEqualTo(Integer value) {
            addCriterion("to <=", value, "to");
            return (Criteria) this;
        }

        public Criteria andToIn(List<Integer> values) {
            addCriterion("to in", values, "to");
            return (Criteria) this;
        }

        public Criteria andToNotIn(List<Integer> values) {
            addCriterion("to not in", values, "to");
            return (Criteria) this;
        }

        public Criteria andToBetween(Integer value1, Integer value2) {
            addCriterion("to between", value1, value2, "to");
            return (Criteria) this;
        }

        public Criteria andToNotBetween(Integer value1, Integer value2) {
            addCriterion("to not between", value1, value2, "to");
            return (Criteria) this;
        }

        public Criteria andAssessmentStatusIsNull() {
            addCriterion("assessment_status is null");
            return (Criteria) this;
        }

        public Criteria andAssessmentStatusIsNotNull() {
            addCriterion("assessment_status is not null");
            return (Criteria) this;
        }

        public Criteria andAssessmentStatusEqualTo(Integer value) {
            addCriterion("assessment_status =", value, "assessmentStatus");
            return (Criteria) this;
        }

        public Criteria andAssessmentStatusNotEqualTo(Integer value) {
            addCriterion("assessment_status <>", value, "assessmentStatus");
            return (Criteria) this;
        }

        public Criteria andAssessmentStatusGreaterThan(Integer value) {
            addCriterion("assessment_status >", value, "assessmentStatus");
            return (Criteria) this;
        }

        public Criteria andAssessmentStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("assessment_status >=", value, "assessmentStatus");
            return (Criteria) this;
        }

        public Criteria andAssessmentStatusLessThan(Integer value) {
            addCriterion("assessment_status <", value, "assessmentStatus");
            return (Criteria) this;
        }

        public Criteria andAssessmentStatusLessThanOrEqualTo(Integer value) {
            addCriterion("assessment_status <=", value, "assessmentStatus");
            return (Criteria) this;
        }

        public Criteria andAssessmentStatusIn(List<Integer> values) {
            addCriterion("assessment_status in", values, "assessmentStatus");
            return (Criteria) this;
        }

        public Criteria andAssessmentStatusNotIn(List<Integer> values) {
            addCriterion("assessment_status not in", values, "assessmentStatus");
            return (Criteria) this;
        }

        public Criteria andAssessmentStatusBetween(Integer value1, Integer value2) {
            addCriterion("assessment_status between", value1, value2, "assessmentStatus");
            return (Criteria) this;
        }

        public Criteria andAssessmentStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("assessment_status not between", value1, value2, "assessmentStatus");
            return (Criteria) this;
        }

        public Criteria andAssessmentFieldIsNull() {
            addCriterion("assessment_field is null");
            return (Criteria) this;
        }

        public Criteria andAssessmentFieldIsNotNull() {
            addCriterion("assessment_field is not null");
            return (Criteria) this;
        }

        public Criteria andAssessmentFieldEqualTo(Integer value) {
            addCriterion("assessment_field =", value, "assessmentField");
            return (Criteria) this;
        }

        public Criteria andAssessmentFieldNotEqualTo(Integer value) {
            addCriterion("assessment_field <>", value, "assessmentField");
            return (Criteria) this;
        }

        public Criteria andAssessmentFieldGreaterThan(Integer value) {
            addCriterion("assessment_field >", value, "assessmentField");
            return (Criteria) this;
        }

        public Criteria andAssessmentFieldGreaterThanOrEqualTo(Integer value) {
            addCriterion("assessment_field >=", value, "assessmentField");
            return (Criteria) this;
        }

        public Criteria andAssessmentFieldLessThan(Integer value) {
            addCriterion("assessment_field <", value, "assessmentField");
            return (Criteria) this;
        }

        public Criteria andAssessmentFieldLessThanOrEqualTo(Integer value) {
            addCriterion("assessment_field <=", value, "assessmentField");
            return (Criteria) this;
        }

        public Criteria andAssessmentFieldIn(List<Integer> values) {
            addCriterion("assessment_field in", values, "assessmentField");
            return (Criteria) this;
        }

        public Criteria andAssessmentFieldNotIn(List<Integer> values) {
            addCriterion("assessment_field not in", values, "assessmentField");
            return (Criteria) this;
        }

        public Criteria andAssessmentFieldBetween(Integer value1, Integer value2) {
            addCriterion("assessment_field between", value1, value2, "assessmentField");
            return (Criteria) this;
        }

        public Criteria andAssessmentFieldNotBetween(Integer value1, Integer value2) {
            addCriterion("assessment_field not between", value1, value2, "assessmentField");
            return (Criteria) this;
        }

        public Criteria andAssessmentScoreIsNull() {
            addCriterion("assessment_score is null");
            return (Criteria) this;
        }

        public Criteria andAssessmentScoreIsNotNull() {
            addCriterion("assessment_score is not null");
            return (Criteria) this;
        }

        public Criteria andAssessmentScoreEqualTo(Double value) {
            addCriterion("assessment_score =", value, "assessmentScore");
            return (Criteria) this;
        }

        public Criteria andAssessmentScoreNotEqualTo(Double value) {
            addCriterion("assessment_score <>", value, "assessmentScore");
            return (Criteria) this;
        }

        public Criteria andAssessmentScoreGreaterThan(Double value) {
            addCriterion("assessment_score >", value, "assessmentScore");
            return (Criteria) this;
        }

        public Criteria andAssessmentScoreGreaterThanOrEqualTo(Double value) {
            addCriterion("assessment_score >=", value, "assessmentScore");
            return (Criteria) this;
        }

        public Criteria andAssessmentScoreLessThan(Double value) {
            addCriterion("assessment_score <", value, "assessmentScore");
            return (Criteria) this;
        }

        public Criteria andAssessmentScoreLessThanOrEqualTo(Double value) {
            addCriterion("assessment_score <=", value, "assessmentScore");
            return (Criteria) this;
        }

        public Criteria andAssessmentScoreIn(List<Double> values) {
            addCriterion("assessment_score in", values, "assessmentScore");
            return (Criteria) this;
        }

        public Criteria andAssessmentScoreNotIn(List<Double> values) {
            addCriterion("assessment_score not in", values, "assessmentScore");
            return (Criteria) this;
        }

        public Criteria andAssessmentScoreBetween(Double value1, Double value2) {
            addCriterion("assessment_score between", value1, value2, "assessmentScore");
            return (Criteria) this;
        }

        public Criteria andAssessmentScoreNotBetween(Double value1, Double value2) {
            addCriterion("assessment_score not between", value1, value2, "assessmentScore");
            return (Criteria) this;
        }

        public Criteria andIsAnonymousIsNull() {
            addCriterion("is_anonymous is null");
            return (Criteria) this;
        }

        public Criteria andIsAnonymousIsNotNull() {
            addCriterion("is_anonymous is not null");
            return (Criteria) this;
        }

        public Criteria andIsAnonymousEqualTo(Byte value) {
            addCriterion("is_anonymous =", value, "isAnonymous");
            return (Criteria) this;
        }

        public Criteria andIsAnonymousNotEqualTo(Byte value) {
            addCriterion("is_anonymous <>", value, "isAnonymous");
            return (Criteria) this;
        }

        public Criteria andIsAnonymousGreaterThan(Byte value) {
            addCriterion("is_anonymous >", value, "isAnonymous");
            return (Criteria) this;
        }

        public Criteria andIsAnonymousGreaterThanOrEqualTo(Byte value) {
            addCriterion("is_anonymous >=", value, "isAnonymous");
            return (Criteria) this;
        }

        public Criteria andIsAnonymousLessThan(Byte value) {
            addCriterion("is_anonymous <", value, "isAnonymous");
            return (Criteria) this;
        }

        public Criteria andIsAnonymousLessThanOrEqualTo(Byte value) {
            addCriterion("is_anonymous <=", value, "isAnonymous");
            return (Criteria) this;
        }

        public Criteria andIsAnonymousIn(List<Byte> values) {
            addCriterion("is_anonymous in", values, "isAnonymous");
            return (Criteria) this;
        }

        public Criteria andIsAnonymousNotIn(List<Byte> values) {
            addCriterion("is_anonymous not in", values, "isAnonymous");
            return (Criteria) this;
        }

        public Criteria andIsAnonymousBetween(Byte value1, Byte value2) {
            addCriterion("is_anonymous between", value1, value2, "isAnonymous");
            return (Criteria) this;
        }

        public Criteria andIsAnonymousNotBetween(Byte value1, Byte value2) {
            addCriterion("is_anonymous not between", value1, value2, "isAnonymous");
            return (Criteria) this;
        }

        public Criteria andStartTimeIsNull() {
            addCriterion("start_time is null");
            return (Criteria) this;
        }

        public Criteria andStartTimeIsNotNull() {
            addCriterion("start_time is not null");
            return (Criteria) this;
        }

        public Criteria andStartTimeEqualTo(Date value) {
            addCriterion("start_time =", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeNotEqualTo(Date value) {
            addCriterion("start_time <>", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeGreaterThan(Date value) {
            addCriterion("start_time >", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("start_time >=", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeLessThan(Date value) {
            addCriterion("start_time <", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeLessThanOrEqualTo(Date value) {
            addCriterion("start_time <=", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeIn(List<Date> values) {
            addCriterion("start_time in", values, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeNotIn(List<Date> values) {
            addCriterion("start_time not in", values, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeBetween(Date value1, Date value2) {
            addCriterion("start_time between", value1, value2, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeNotBetween(Date value1, Date value2) {
            addCriterion("start_time not between", value1, value2, "startTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeIsNull() {
            addCriterion("end_time is null");
            return (Criteria) this;
        }

        public Criteria andEndTimeIsNotNull() {
            addCriterion("end_time is not null");
            return (Criteria) this;
        }

        public Criteria andEndTimeEqualTo(Date value) {
            addCriterion("end_time =", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotEqualTo(Date value) {
            addCriterion("end_time <>", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeGreaterThan(Date value) {
            addCriterion("end_time >", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("end_time >=", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeLessThan(Date value) {
            addCriterion("end_time <", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeLessThanOrEqualTo(Date value) {
            addCriterion("end_time <=", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeIn(List<Date> values) {
            addCriterion("end_time in", values, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotIn(List<Date> values) {
            addCriterion("end_time not in", values, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeBetween(Date value1, Date value2) {
            addCriterion("end_time between", value1, value2, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotBetween(Date value1, Date value2) {
            addCriterion("end_time not between", value1, value2, "endTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}